#include <stdio.h>

void Selection_Sort(int*, int );

int main()
{
    int data[10] = {230, 23, 59, 10, 10086, 10010, 10000, 86, 154600, 0464};

    printf("brfore sort data:\n");
    int i = 0;
    for(i = 0; i < sizeof(data)/sizeof(data[0]); i++)
        printf("%d\t", data[i]);

    printf("\n__________________________________________________________________\n");
    
    Selection_Sort(data, sizeof(data)/sizeof(data[0]));
    printf("after sort data:\n");
    for(i = 0; i < sizeof(data)/sizeof(data[0]); i++)
        printf("%d\t", data[i]);

    return 0;
}

void Selection_Sort(int* arr, int size_num)
{
    int i = 0, j = 0, min = 0;
    for(i = 0; i < size_num - 1; i++)
    {
        min = i;//存放最小值下标
        for(j = i + 1; j < size_num; j++)
        {
            if(arr[min] > arr[j])
            {
                min = j;
            }
        }
        if(min != i) //如果每轮查询出的最小值是每轮开始的第一个元素，则不需要进行最小值交换
        {
            arr[min] = arr[min] + arr[i];
            arr[i] = arr[min] - arr[i];
            arr[min] = arr[min] - arr[i];
        }
    }
}

